package com.wgz.medicalmanagement.domain.dto.ai;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 聊天完成请求DTO
 * 发送给OpenAI API的请求格式
 *
 * @author medical
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ChatCompletionRequest {
    
    /**
     * 使用的模型
     */
    private String model;
    
    /**
     * 对话消息列表
     */
    private List<ChatMessage> messages;
    
    /**
     * 采样温度，控制回复的随机性
     * 较高的值如0.8会使输出更加随机，较低的值如0.2会使输出更加集中和确定
     */
    private Double temperature;
    
    /**
     * 最大令牌数
     * 控制生成回复的最大长度
     * DeepSeek API要求使用max_tokens而非maxTokens
     */
    @Builder.Default
    private Integer max_tokens = 2000;
    
    /**
     * 是否使用流式响应
     */
    @Builder.Default
    private Boolean stream = false;
} 